
{{template "base.html" .}}

{{define "content"}}
<script>
    $("#teacher-left-stu dl dd").eq(1).addClass("layui-this")//设置左侧导航栏
</script>
<script>
    var url = window.location.href;
    var to_Id = url.substring(url.lastIndexOf("/") + 1);
    $.ajax({
        url: '/teacher/getScl90',
        method: 'post',
        data: {
            "userID": to_Id
        },
        dataType: 'JSON',
        success: function (res) {
            // 映射对象，将英文字段名映射为中文
            var fieldMap = {
                "StudentName": "学生姓名",
                "anxiety": "焦虑",
                "average": "总平均分",
                "bigotry": "偏执",
                "depression": "抑郁",
                "feminine": "阴性项目数",
                "hostile": "敌对",
                "interpersonalSensitivity": "人际敏感",
                "masculine": "阳性项目数",
                "masculineAge": "阳性均分",
                "masculineSum": "阳性总分",
                "obsessiveCompulsive": "强迫症状",
                "other": "其他",
                "psychotic": "精神病性",
                "somatization": "躯体化",
                "sum": "总分",
                "terror": "恐怖"
            };
            // 数据映射对象，将字段名映射为对应的数据值
            var dataMap = {
                "StudentName": res.data.StudentName,
                "焦虑": res.data.anxiety,
                "总平均分": res.data.average,
                "偏执": res.data.bigotry,
                "抑郁": res.data.depression,
                "阴性项目数": res.data.feminine,
                "敌对": res.data.hostile,
                "人际敏感": res.data.interpersonalSensitivity,
                "阳性项目数": res.data.masculine,
                "阳性均分": res.data.masculineAge,
                "阳性总分": res.data.masculineSum,
                "强迫症状": res.data.obsessiveCompulsive,
                "其他": res.data.other,
                "精神病性": res.data.psychotic,
                "躯体化": res.data.somatization,
                "总分": res.data.sum,
                "恐怖": res.data.terror
            };
            // 将数据映射对象转换为 JSON 格式字符串
            var dataMapJSON = JSON.stringify(dataMap);

            //获取gpt回复
            $("#reports-btn").click(function (){
                $("#reports-load").show()
                $.ajax({
                    url: '/teacher/getScl90/gptReports',
                    method: 'post',
                    data: {
                        "dataMapJSON": dataMapJSON
                    },
                    dataType: 'JSON',
                    success: function (res) {
                        if (res.code == 0) {
                            $("#reports-text").text(res.data)
                        }
                    },
                    complete: function () {
                        $("#reports-load").hide()
                    }
                })
            })

            // 分数等级规则函数
            function getScoreLevel(score) {
                if (score <= 2) {
                    return '<span>无</span>';
                } else if (score > 2 && score < 3) {
                    return '<span style="color: green;">轻度</span>';
                } else if (score >= 3 && score < 4) {
                    return '<span style="color: orange;">中度</span>';
                } else if (score >= 4) {
                    return '<span style="color: #c00;">重度</span>';
                }
            }

            // 获取表格容器
            var tableContainer = document.getElementById("table-container");

            // 创建表格元素
            var table = document.createElement("table");
            table.className = "table";

            // 创建表格内容
            // 先创建StudentName的行
            var studentNameRow = document.createElement("tr");
            var studentNameKey = document.createElement("th");
            studentNameKey.textContent = "学生姓名";
            var studentNameValue = document.createElement("td");
            studentNameValue.textContent = res.data.StudentName;
            var studentNameValue2 = document.createElement("td");
            studentNameValue2.textContent ="等级";
            studentNameRow.appendChild(studentNameKey);
            studentNameRow.appendChild(studentNameValue);
            studentNameRow.appendChild(studentNameValue2);
            table.appendChild(studentNameRow);


            // 遍历剩余的键值对，生成表格的其他行
            for (var key in res.data) {
                if (key !== "TextId"&&key !== "StudentName" && key !== "id" && key !== "userId") {
                    var tr = document.createElement("tr");

                    // 创建键列
                    var th = document.createElement("th");
                    th.textContent = fieldMap[key] || key; // 使用映射对象中的中文字段名，若没有映射则使用英文字段名
                    tr.appendChild(th);

                    // 创建值列
                    var td = document.createElement("td");
                    td.textContent = res.data[key];
                    tr.appendChild(td);

                    // 创建等级列
                    if (key !== "TextId" && key !== "sum" && key !== "average" && key !== "masculineAge" && key !== "masculineSum" && key !== "feminine" && key !== "masculine") {
                        var levelTd = document.createElement("td");
                        var scoreLevel = getScoreLevel(res.data[key]);
                        levelTd.innerHTML = scoreLevel;
                        tr.appendChild(levelTd);
                    }
                    if (key=="somatization"){
                        tr.title = "躯体化包括1、4、12、27、40、42、48、49、52、53、56和58，共12项。该因子主要反映主观的躯体不适感，包括心血管、胃肠道、呼吸等系统的主述不适，以及头痛、背痛、肌肉酸痛和各种心理不适引发的躯体表现。"; // 设置注释
                    }
                    if (key=="obsessiveCompulsive"){
                        tr.title = "强迫症状包括3、9、10、28、38、45、46、51、55和65，共10项。该因子与临床强迫症表现的症状、定义基本相同。主要指那种明知没有必要但又无法摆脱的无意义的思想、冲动、行为等表现；还有一些比较一般的感知障碍，如脑子“变空了”，“记忆力不好”等，也在这一因子中反映出来。"; // 设置注释
                    }
                    if (key=="interpersonalSensitivity"){
                        tr.title = "人际敏感包括6、21、34、36、37、41、61、69和73，共9项。它主要指某些主观的不自在感和自卑感，尤其是在与他人相比较时更突出。自卑、懊丧以及在人际关系中明显不好相处的人，往往是这一因子获高分的对象。"; // 设置注释
                    }
                    if (key=="depression"){
                        tr.title = "抑郁包括5、14、15、20、22、26、29、30、31、32、54、71和79，共13项。它反映的是与临床上抑郁症状群相联系的广泛的概念。抑郁苦闷的感情和心境是代表性症状，还以对生活的兴趣减退、缺乏活动愿望、丧失活动力等为特征，并包括失望、悲观、与抑郁相联系的其他感知及躯体方面的问题。该因子中有几个项目包括了死亡、自杀等概念。"; // 设置注释
                    }
                    if (key=="anxiety"){
                        tr.title = "焦虑包括2、17、23、33、39、57、72、78、80和86，共10个项目。它包括一些通常在临床上明显与焦虑症状相联系的精神症状及体验，一般指那些无法静息、神经过敏、紧张以及由此而产生的躯体征象，那种游离不定的焦虑及惊恐发作是本因子的主要内容，还包括一个反映“解体”的项目。"; // 设置注释
                    }
                    if (key=="hostile"){
                        tr.title = "敌对包括11、24、63、67、74和81，共6项。主要从思维、情感及行为三方面来反映受测者的敌对表现。其项目包括从厌烦、争论、摔物，直至争斗和不可抑制的冲动爆发等各个方面。"; // 设置注释
                    }
                    if (key=="terror"){
                        tr.title = "恐怖包括13、25、47、50、70、75和82，共7项。它与传统的恐怖状态或广场恐怖所反映的内容基本一致。引起恐怖的因素包括出门旅行、空旷场地、人群、公共场合及交通工具等。此外还有反映社交恐怖的项目。"; // 设置注释
                    }
                    if (key=="bigotry"){
                        tr.title = "偏执包括8、18、43、68、76和83，共6项。偏执是一个十分复杂的概念，本因子只是包括了一些基本内容，主要指思维方面，如投射性思维、敌对、猜疑、关系妄想、被动体验与夸大等。"; // 设置注释
                    }
                    if (key=="psychotic"){
                        tr.title = "精神病性包括7、16、35、62、77、84、85、87、88和90，共10项。其中有幻听、思维播散、被控制感、思维被插入等反映精神分裂样症状的项目。"; // 设置注释
                    }
                    if (key=="other"){
                        tr.title = "其他包括19、44、59、60、64、66及89共7个项目，主要反映睡眠及饮食情况。"; // 设置注释
                    }
                    // 将行添加到表格
                    table.appendChild(tr);
                }
            }

            // 将表格添加到容器中
            tableContainer.appendChild(table);
            $("#reports-send").click(function (){
                $(location).attr("href","/teacher/client/msg/"+res.data.userId)
            })
            $("#reports-check").click(function (){
                $(location).attr("href","/teacher/stu_test/check/1/"+res.data.userId)
            })
        },
    });

</script>
<div id="Booking-box">
    <div class="Booking-box-textRow layui-row layui-col-space20">
        <div  class="layui-col-md4 Booking-box-text">
            <h1>具体数据</h1>
        </div>
        <div  class="layui-col-md8 Booking-box-text">
            <h1>SCL-90结果的解释</h1>
        </div>
    </div>

    <div class="Booking-box-row layui-row layui-col-space20" style="width: 100%; overflow-x: auto;">
        <div id="Booking-box-left" class="layui-col-md4">
            <!-- 表格容器 -->
            <div id="table-container"></div>
        </div>
        <div class="layui-col-md8">
            <h2>一、总分</h2>
            <p>90个项目单项分相加之和，能反映病情严重程度。</p>
            <ul>
                <li>总均分：总分/90，表示从总体情况看，该受测者的自我感觉位于1～5级间哪一个分值程度上。</li>
                <li>阳性项目数：单项分≥2的项目数，表示受测者在多少项目上呈现有“症状”。</li>
                <li>阴性项目数（又叫阴性项目得分）：单项分=1的项目数，表示受测者“无症状”的项目有多少。</li>
                <li>阳性症状均分：（总分-阴性项目数）/阳性项目数，表示受测者在“有症状”项目中的平均得分。反映该受测者自我感觉不佳的项目，其严重程度究竟介于哪个范围。</li>
            </ul>

            <h2>二、因子分</h2>
            <p>共包括10个因子，即所有90个项目分为10大类，每一因子反映受测者某一方面的情况。通过因子分可以了解受测者的症状分布特点，并可作阔图（Profile）分析。</p>

            <p>每一个项目均采取4级评分制，具体说明如下：</p>
            <ol>
                <li>没有：自觉无该项症状（问题）。</li>
                <li>轻度：自觉有该项症状，但对受测者并无实际影响，或影响轻微。</li>
                <li>中度：自觉有该项症状，对受测者有一定影响。</li>
                <li>重度：自觉常有该项症状，对受测者有相当程度的影响。</li>
            </ol>

            <p>按照全国常模结果，总分超过160分，或阳性项目数超过43项，或任一因子分超过2分，可考虑筛查阳性，需进一步检查。</p>
        </div>

    </div>
    <div class="Booking-box-row layui-row layui-col-space30" style="width: 100%; overflow-x: auto;margin-top: 20px">
        <div class="layui-col-md4">
            <button id="reports-btn" type="button" class="layui-btn layui-btn-fluid">分析</button>
            <div id="reports-text"></div>
            <i id="reports-load" class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop" style="display: none;font-size: 80px;"></i>
        </div>
        <div class="layui-col-md8">
            <button id="reports-check" type="button" class="layui-btn">查看试卷</button>
            <button id="reports-send" type="button" class="layui-btn">发送消息</button>
        </div>

    </div>
</div>

<style>
    #Booking-box{
        padding: 5%;
        height: 500px;
    }
    .Booking-box-row,#Booking-box-left,#Booking-box-right{
        height: 100%;
    }
    #Booking-box-left{

    }
    #Booking-box-right{

    }
    /* 添加表格样式 */
    .table {
        border-collapse: collapse;
        width: 100%;
    }

    /* 表格边框样式 */
    .table th,
    .table td {
        border: 1px solid black;
        padding: 8px;
    }

    /* 表格中间线样式 */
    .table th:not(:last-child),
    .table td:not(:last-child) {
        border-right: none;
    }

    /* 表格键列样式 */
    .table th {
        text-align: left;
        width: 30%;
    }
    .table th, .table td {
        border: 1px solid black;
        padding: 2px;
    }
</style>
{{end}}
